package gui.addrecipe;


import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

/**
 * Textfelder, die dieses Dokument benutzen haben eine angegebene Maximallaenge
 * @author Dominik Korittki
 *
 */
public class FixedSizeDocument extends PlainDocument
{
	/** Serial Version ID */
	private static final long serialVersionUID = 1L;
	
	/** Maximale Zeichlaenge des Dokuments */
	private int max = 10;

	/**
	 * Festlegen der Zeichenlaenge
	 * @param max maximale Zeichelaenge
	 */
	public FixedSizeDocument(int max) {
		this.max = max;
	}

	/**
	 * Speichert Zeichen im Dokument und ueberprueft ob Maximallaenge dabei ueberschritten wird.
	 * Falls ja wird das letzte Zeichen wieder abgeschnitten
	 */
	public void insertString(int offs, String str, javax.swing.text.AttributeSet a) throws BadLocationException {
		if (getLength()+str.length()>max) {
			str = str.substring(0, max - getLength());
		}
		super.insertString(offs, str, a);
	}
}
